/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.losalpes.carritoCompra;

import com.losalpes.businessEntities.Articulo;
import com.losalpes.persistence.entity.Compra;
import com.losalpes.persistence.entity.FormaPago;
import com.losalpes.persistence.entity.TipoMueble;
import java.util.ArrayList;
import java.util.Iterator;
import javax.ejb.Stateful;

/**
 *
 * @author integradores
 */
@Stateful
public class CarritoCompraMock implements ICarritoCompraService {

    private ArrayList<Articulo> art = new ArrayList<Articulo>();
    private Compra compra;

    /**
     * Constructor por defecto
     */
    public CarritoCompraMock() {
        this.art = new ArrayList<Articulo>();

//        for (int i = 0; i < 10; i++) {
//            if (i % 2 == 0) {
//                Articulo articulo = new Articulo("001" + i + 1, "Mueble" + i,
//                        TipoMueble.Exterior, i * 2, i * 12.5);
//                this.art.add(articulo);
//            } else {
//                Articulo articulo = new Articulo("002" + i + 1, "Mueble" + i,
//                        TipoMueble.Interior, i * 3, i * 9.5);
//                this.art.add(articulo);
//            }
//        }
    }

    public void add(Articulo articulo) {
        this.art.add(articulo);
    }

    public void remove(Articulo articulo) {
        this.art.remove(art);
    }

    public void update(Articulo articulo) {
        int posicion = this.art.indexOf(articulo);
        // Actualiza el articulo
        Articulo artAct = this.art.get(posicion);
        artAct.setCantidad(articulo.getCantidad());
        artAct.setNombreMueble(articulo.getNombreMueble());
        artAct.setTipoMueble(articulo.getTipoMueble());
        artAct.setValor(articulo.getValor());
    }

    public void Comprar(FormaPago formaPago) {

    }

    public ArrayList<Articulo> findAllArticulos() {
        return this.art;
    }

    public void limpiar() {
        this.art.clear();
    }

    public Compra findCompra() {
        return this.compra;
    }

    public ArrayList<Articulo> findArticuloByTipoInterior() {
        ArrayList<Articulo> interiores = new ArrayList<Articulo>();

        for (Iterator<Articulo> it = art.iterator(); it.hasNext();) {
            Articulo articulo = it.next();
            if (articulo.getTipoMueble().equals(TipoMueble.Interior)) {
                interiores.add(articulo);
            }
        }

        return interiores;
    }

    public ArrayList<Articulo> findArticuloByTipoExterior() {
        ArrayList<Articulo> exteriores = new ArrayList<Articulo>();

        for (Iterator<Articulo> it = art.iterator(); it.hasNext();) {
            Articulo articulo = it.next();
            if (articulo.getTipoMueble().equals(TipoMueble.Exterior)) {
                exteriores.add(articulo);
            }
        }

        return exteriores;
    }
}
